home *** CD-ROM | disk | FTP | other *** search
- Program Ipoly_Keygen_By_The_Q;
- Const HexDig:Set of char = ['0'..'9','A'..'F'];
- Var X,Y,Z,T:REAL;
- A1,A2,A3,A4,
- B1,B2,B3,B4,
- C1,C2,C3,C4,
- D1,D2,D3,D4,
- E1,E2,E3,E4:REAL;
- dGEN,dX,dY,dZ,dT:REAL;
- S:String;
- I:byte;
-
- Function CharToDigit(Ch:Char):REAL;
- Begin
- Ch:=Chr(Ord(Ch)-$30);
- If Ord(Ch)>$10 then Ch:=Chr(Ord(Ch)-7);
- CharToDigit:=Ord(Ch);
- End;
-
- Function Power (Base,P:real):Real;
- Begin
- Power:=Int(Exp(P*Ln(Base)));
- End;
-
- Function Matrix_3x3 (F1,G1,H1,F2,G2,H2,F3,G3,H3:REAL):Real;
- Begin
- Matrix_3x3:=(F1*G2*H3 + G1*H2*F3 + H1*F2*G3)-
- (G1*F2*H3 + F1*H2*G3 + H1*G2*F3);
- End;
-
-
- Begin
- Writeln;Writeln('───═════════════════════───');
- Writeln(' ■ Ipoly KeyGen By The+Q ■ ');Writeln;
- Write('Enter Your Licence Number : ');Readln(S);
- If not (length(S)=8) then begin
- Writeln('Error! licence number should be 8 hex-digits long. Try Again!');
- halt(1);
- End;
- For i:=1 to length(S) do S[i]:=UpCase(S[i]);
- For i:=1 to length(S) do
- If not (S[i] in HexDig) then Begin
- Writeln('Error! licence number has invalid chars.');Halt(1);End;
-
- A1:=CharToDigit(S[1]);
- A2:=CharToDigit(S[2]);
- A3:=CharToDigit(S[3]);
- A4:=CharToDigit(S[4]);
- E1:=CharToDigit(S[5]);
- E2:=CharToDigit(S[6]);
- E3:=CharToDigit(S[7]);
- E4:=CharToDigit(S[8]);
-
- B1:=Power(A1,2) ; B2:=Power(A2,2) ; B3:=Power(A3,2) ; B4:=Power(A4,2);
- C1:=Power(A1,3) ; C2:=Power(A2,3) ; C3:=Power(A3,3) ; C4:=Power(A4,3);
- D1:=Power(A1,4) ; D2:=Power(A2,4) ; D3:=Power(A3,4) ; D4:=Power(A4,4);
-
- dGEN:= A1*(Matrix_3x3(B2,C2,D2, B3,C3,D3, B4,C4,D4))
- - A2*(Matrix_3x3(B1,C1,D1, B3,C3,D3, B4,C4,D4))
- + A3*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B4,C4,D4))
- - A4*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B3,C3,D3));
-
- dX := E1*(Matrix_3x3(B2,C2,D2, B3,C3,D3, B4,C4,D4))
- - E2*(Matrix_3x3(B1,C1,D1, B3,C3,D3, B4,C4,D4))
- + E3*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B4,C4,D4))
- - E4*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B3,C3,D3));
- X:=dX / dGEN;
-
- dY := A1*(Matrix_3x3(E2,C2,D2, E3,C3,D3, E4,C4,D4))
- - A2*(Matrix_3x3(E1,C1,D1, E3,C3,D3, E4,C4,D4))
- + A3*(Matrix_3x3(E1,C1,D1, E2,C2,D2, E4,C4,D4))
- - A4*(Matrix_3x3(E1,C1,D1, E2,C2,D2, E3,C3,D3));
- Y:=dY / dGEN;
-
- dZ := A1*(Matrix_3x3(B2,E2,D2, B3,E3,D3, B4,E4,D4))
- - A2*(Matrix_3x3(B1,E1,D1, B3,E3,D3, B4,E4,D4))
- + A3*(Matrix_3x3(B1,E1,D1, B2,E2,D2, B4,E4,D4))
- - A4*(Matrix_3x3(B1,E1,D1, B2,E2,D2, B3,E3,D3));
- Z:=dZ / dGEN;
-
- dT := A1*(Matrix_3x3(B2,C2,E2, B3,C3,E3, B4,C4,E4))
- - A2*(Matrix_3x3(B1,C1,E1, B3,C3,E3, B4,C4,E4))
- + A3*(Matrix_3x3(B1,C1,E1, B2,C2,E2, B4,C4,E4))
- - A4*(Matrix_3x3(B1,C1,E1, B2,C2,E2, B3,C3,E3));
- T:=dT / dGEN;
-
- Writeln('Key #1: ',(X*100000):10:0);
- Writeln('Key #2: ',(Y*100000):10:0);
- Writeln('Key #3: ',(Z*100000):10:0);
- Writeln('Key #4: ',(T*100000):10:0);
- Writeln('Key #5,#6,#7,#8: 100000');
-
- End.
-